home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-cameron-cmp-00.txt < prev    next >
Text File  |  1993-04-21  |  26KB  |  724 lines

  1.  
  2.  
  3.  
  4. Internet Draft                                                P. Cameron
  5.                                                                 J. Bates
  6.                                             Xylogics, International Ltd.
  7.                                                               April 1993
  8.  
  9.  
  10.                  Connection Multiplexing Protocol (CMP)
  11.  
  12. Status of this Memo
  13.  
  14.    This document is an Internet Draft.  Internet Drafts are working
  15.    documents of the Internet Engineering Task Force (IETF), its Areas,
  16.    and its Working Groups.  Note that other groups may also distribute
  17.    working documents as Internet Drafts.
  18.  
  19.    Internet Drafts are draft documents valid for a maximum of six
  20.    months. Internet Drafts may be updated, replaced, or obsoleted by
  21.    other documents at any time.  It is not appropriate to use Internet
  22.    Drafts as reference material or to cite them other than as a "working
  23.    draft" or "work in progress."
  24.  
  25.    Please check the I-D abstract listing contained in each Internet
  26.    Draft directory to learn the current status of this or any other
  27.    Internet Draft.
  28.  
  29.    It is intended that this document will be submitted to the IESG for
  30.    consideration as a standards document.  Distribution of this document
  31.    is unlimited.
  32.  
  33.  
  34. Abstract
  35.  
  36.    One of the problems with terminal servers attached to a LAN is the
  37.    large number of small packets they can generate.  Frequently, most of
  38.    these packets are destined for only one or two hosts.  CMP is a
  39.    protocol which allows multiple Telnet and Rlogin connections, between
  40.    a server and a host, to share a single TCP connection.  With simple
  41.    extensions this can be expanded to include other TCP protocols.
  42.  
  43.  
  44. Acknowledgments
  45.  
  46.    This document is the work of many more contributors than just the
  47.    listed authors both here at Xylogics International and at Xylogics
  48.    Inc.  Specifically Jim Barnes, Gary Malkin, James Carlson, Dave Hirst
  49.    and Miguel Sasson.
  50.  
  51.    In addition, we would like to thank ICL Plc. in the U.K. and Sweden
  52.    for reviewing early versions of this proposal, and for their
  53.    assistance on early prototypes.
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. Cameron, Bates             Expires: 20 Oct 93                   [Page 1]
  62.  
  63.  
  64.  
  65.  
  66.  
  67. Internet Draft                    CMP                         April 1993
  68.  
  69.  
  70.                              Table of Contents
  71.  
  72.    1.  Justification  . . . . . . . . . . . . . . . . . . . . . . . .  2
  73.    2.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
  74.    3.  Protocol Design  . . . . . . . . . . . . . . . . . . . . . . .  3
  75.    3.1   Header Format  . . . . . . . . . . . . . . . . . . . . . . .  3
  76.    3.2   Opening a Multiplexed Connection . . . . . . . . . . . . . .  4
  77.    3.3   Opening a New Subconnection  . . . . . . . . . . . . . . . .  6
  78.    3.4   Sending Data . . . . . . . . . . . . . . . . . . . . . . . .  6
  79.    3.5   Urgent Data  . . . . . . . . . . . . . . . . . . . . . . . .  6
  80.    3.6   Subconnection flow control . . . . . . . . . . . . . . . . .  7
  81.    3.7   Closing a Subconnection  . . . . . . . . . . . . . . . . . .  8
  82.    3.8   Closing a Multiplexed Connection . . . . . . . . . . . . . .  9
  83.    3.9   Standard Error Codes . . . . . . . . . . . . . . . . . . . .  9
  84.    4.  Multiplexed Messages . . . . . . . . . . . . . . . . . . . . . 10
  85.    4.1   Construction . . . . . . . . . . . . . . . . . . . . . . . . 10
  86.    4.2   Disassembly  . . . . . . . . . . . . . . . . . . . . . . . . 10
  87.    5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
  88.    6.  Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 11
  89.  
  90.  
  91. 1. Justification
  92.  
  93.    When network designers consider which protocols generate the most
  94.    load, they naturally tend to consider protocols which transfer large
  95.    blocks of data (e.g. FTP, NFS).  What is often not considered is the
  96.    load generated by Telnet and Rlogin because of the assumption that
  97.    users type slowly and the packets are very small.  This is a grave
  98.    underestimation on networks which have many Telnet and Rlogin ports
  99.    on multiple terminal servers.
  100.  
  101.    The problem stems from the fact that the work a host must do to
  102.    process a 1-byte packet is very nearly as much as the work it must do
  103.    to process a 1500-byte packet.  That is, it is the overhead of
  104.    processing a packet which consumes a host's resources, not the
  105.    processing of the data.
  106.  
  107.    If one assumes that most users connected to a terminal server will be
  108.    connecting to only a few hosts, then it should be obvious that the
  109.    network and host load could be greatly reduced if traffic from
  110.    multiple users, destined for the same host, could be sent in the same
  111.    packet.
  112.  
  113.  
  114. 2. Overview
  115.  
  116.    CMP is designed to improve network utilization and reduce the load on
  117.    the hosts by multiplexing TCP connections, which would otherwise
  118.    generate many small packets, onto a single TCP connection which
  119.    generates fewer, larger packets.
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. Cameron, Bates             Expires: 20 Oct 93                   [Page 2]
  128.  
  129.  
  130.  
  131.  
  132.  
  133. Internet Draft                    CMP                         April 1993
  134.  
  135.  
  136.    The following terminology is used throughout this document.
  137.  
  138.    Multiplexed Connection -
  139.       The actual TCP connection which exists between the server and the
  140.       host over which the subconnections exist.
  141.  
  142.    Subconnection -
  143.       The "virtual TCP" connection between processes on the server and
  144.       host which exists over the Multiplexed Connection.
  145.  
  146.    Message -
  147.       A single packet of data for a single subconnection plus its header
  148.       which is passed over the Multiplexed Connection.
  149.  
  150.    Endpoint -
  151.       One of the two ends of a subconnection.
  152.  
  153.  
  154. 3. Protocol Design
  155.  
  156.    CMP operates by prepending a 4 octet header onto each subconnection's
  157.    data, then appending that onto the end of the packet which will be
  158.    sent over the multiplexed connection.  Upon receiving a message, the
  159.    individual subconnection datastreams are demultiplexed and the
  160.    information is handed up to the application.
  161.  
  162. 3.1 Header Format
  163.  
  164.    The 4 octet header has the following general format:
  165.  
  166.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  167.                      +-----------+-------------------+
  168.                      |   TYPE    |     SIZE high     |
  169.                      +-----------+-------------------+
  170.                      |           SIZE low            |
  171.                      +-------------------------------+
  172.                      |      Dest ID (DID) high       |
  173.                      +-------------------------------+
  174.                      |      Dest ID (DID) low        |
  175.                      +-------------------------------+
  176.  
  177.    The TYPE field has the following values:
  178.       0 - data (DATA)
  179.       1 - urgent data (URG_DATA)
  180.       2 - open subconnection (OPEN)
  181.       3 - reply to OPEN message (OPEN_RPLY)
  182.       4 - close subconnection (CLOSE)
  183.       5 - reply to CLOSE message (CLOSE_RPLY)
  184.       6 - credit update (CREDIT)
  185.    Value 7 is reserved for future use.
  186.  
  187.    For most commands, the SIZE field contains the number of octets of
  188.    'data' following the header.  For messages of type DATA and URG_DATA
  189.    this will be the number of data octets, for other messages, this will
  190.  
  191.  
  192.  
  193. Cameron, Bates             Expires: 20 Oct 93                   [Page 3]
  194.  
  195.  
  196.  
  197.  
  198.  
  199. Internet Draft                    CMP                         April 1993
  200.  
  201.  
  202.    be the number of octets contained in subsidiary header fields.  For
  203.    the CREDIT message, this field contains the number of bytes of new
  204.    credit available for the receiving end to use.
  205.  
  206.    The DID is an arbitrary 16-bit number assigned by the receiving end
  207.    of a subconnection to identify the subconnection.  The receiver of a
  208.    message uses the DID to uniquely identify a subconnection.  Note,
  209.    this field is not used by the OPEN message as no destination has been
  210.    allocated.
  211.  
  212. 3.2 Opening a Multiplexed Connection
  213.  
  214.    The first time an endpoint tries to open a TCP connection to a host,
  215.    it first attempts to create a Multiplexed Connection by opening to
  216.    the CMP port, TBA.  If that attempt succeeds (i.e. a TCP connection
  217.    is established), the server sends an OPEN  message.  If the
  218.    Multiplexed Connection cannot be established, the server should open
  219.    a standard TCP connection directly to the specified remote port.
  220.  
  221.    The format of an OPEN message is:
  222.  
  223.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  224.                      +-----------+-------------------+
  225.                      |     2     |        0          |
  226.                      +-----------+-------------------+
  227.                      |              6                |
  228.                      +-------------------------------+
  229.                      |              0                |
  230.                      +-------------------------------+
  231.                      |              0                |
  232.                      +-------------------------------+
  233.                      |      Source ID (SID) high     |
  234.                      +-------------------------------+
  235.                      |      Source ID (SID) low      |
  236.                      +-------------------------------+
  237.                      |        Dest port high         |
  238.                      +-------------------------------+
  239.                      |        Dest port low          |
  240.                      +-------------------------------+
  241.                      |     Initial Credit high       |
  242.                      +-------------------------------+
  243.                      |     Initial Credit low        |
  244.                      +-------------------------------+
  245.  
  246.    The SID is an arbitrary number, for example, it could be the index
  247.    into an internal table of connections. See discussion below on the
  248.    use of this field.  The TYPE is 2, indicating the opening of a new,
  249.    in this case first, subconnection.  The DID field is not used as no
  250.    destination has yet been allocated.  The Dest Port is the well known
  251.    TCP port number for the application (e.g. 23 for Telnet).  The
  252.    initial credit is the number of octets of data that the endpoint
  253.    opening the connection can initially receive from the other endpoint.
  254.  
  255.    The receiver of the open message will respond with an OPEN_RPLY
  256.  
  257.  
  258.  
  259. Cameron, Bates             Expires: 20 Oct 93                   [Page 4]
  260.  
  261.  
  262.  
  263.  
  264.  
  265. Internet Draft                    CMP                         April 1993
  266.  
  267.  
  268.    message.  The format of an OPEN_RPLY message is:
  269.  
  270.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  271.                      +-----------+-------------------+
  272.                      |     3     |        0          |
  273.                      +-----------+-------------------+
  274.                      |              6                |
  275.                      +-------------------------------+
  276.                      |      Dest ID (DID) high       |
  277.                      +-------------------------------+
  278.                      |      Dest ID (DID) low        |
  279.                      +-------------------------------+
  280.                      |      Source ID (SID) high     |
  281.                      +-------------------------------+
  282.                      |      Source ID (SID) low      |
  283.                      +-------------------------------+
  284.                      |     Initial Credit high       |
  285.                      +-------------------------------+
  286.                      |     Initial Credit low        |
  287.                      +-------------------------------+
  288.                      |     Error code (ERR) high     |
  289.                      +-------------------------------+
  290.                      |     Error code (ERR) low      |
  291.                      +-------------------------------+
  292.  
  293.    If the receiver cannot open the subconnection for any reason, it will
  294.    respond with an OPEN_RPLY message with a non-zero ERR field (and a
  295.    SID field of 0).  If the receiver succeeds in opening the
  296.    subconnection, the ERR field of the OPEN_RPLY will contain zero.  See
  297.    section 3.9 for a list of standard error codes.  The initial credit
  298.    is the number of octets of data that the endpoint can initially
  299.    receive from the other endpoint.
  300.  
  301.    It is important to note the use of the SID fields in both the OPEN
  302.    and OPEN_RPLY messages.  This field is used to pass to the other
  303.    endpoint the value to be used in the DID field of all subsequent
  304.    messages sent back on this Subchannel.  In particular, the DID field
  305.    of the OPEN_RPLY message should be set from the SID field of the OPEN
  306.    message.
  307.  
  308.    Optionally having different DID fields in the two directions allows
  309.    the implementor of each end much greater freedom in the use of the
  310.    DID field, hence the opportunity to make the implementation more
  311.    efficient.  For example, if the endpoint has a table of information
  312.    about each open subconnection, then the DID can be the index into
  313.    this table.  This is a much more efficient implementation that
  314.    scanning the table and much easier to implement than a hash table
  315.    lookup.
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325. Cameron, Bates             Expires: 20 Oct 93                   [Page 5]
  326.  
  327.  
  328.  
  329.  
  330.  
  331. Internet Draft                    CMP                         April 1993
  332.  
  333.  
  334.    Thus, the sequence of messages and their SIDs and DIDs could be:
  335.  
  336.  
  337.            Endpoint 1              Endpoint 2
  338.            ----------              ----------
  339.  
  340.            TYPE=OPEN
  341.            --------------->
  342.            DID=0
  343.            SID=D1
  344.  
  345.                                       TYPE=OPEN_RPLY
  346.                                    <----------------
  347.                                               DID=D1
  348.                                               SID=D2
  349.  
  350.            TYPE=DATA
  351.            --------------->
  352.            DID=D2
  353.  
  354.                                            TYPE=DATA
  355.                                    <----------------
  356.                                               DID=D1
  357.  
  358.  
  359. 3.3 Opening a New Subconnection
  360.  
  361.    When a user on a server attempts to open a TCP connection to a host
  362.    for which a Multiplexed Connection exists, the server simply adds
  363.    that TCP connection as a new subconnection by sending an OPEN message
  364.    and receiving back an OPEN_RPLY message (see section 3.2).
  365.  
  366.    Once a Multiplexed Connection has been established, either side may
  367.    initiate an OPEN request.
  368.  
  369. 3.4 Sending Data
  370.  
  371.    Subconnection data is preceded by the following header:
  372.  
  373.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  374.                      +-----------+-------------------+
  375.                      |     0     |    Length high    |
  376.                      +-----------+-------------------+
  377.                      |          Length low           |
  378.                      +-------------------------------+
  379.                      |      Dest ID (DID) high       |
  380.                      +-------------------------------+
  381.                      |      Dest ID (DID) low        |
  382.                      +-------------------------------+
  383.  
  384.    The DID is the identification for the subconnection.  The TYPE is 0.
  385.    The Data SIZE field specifies the length of the data immediately
  386.    following the header; it does not include the length of the header.
  387.  
  388.  
  389.  
  390.  
  391. Cameron, Bates             Expires: 20 Oct 93                   [Page 6]
  392.  
  393.  
  394.  
  395.  
  396.  
  397. Internet Draft                    CMP                         April 1993
  398.  
  399.  
  400. 3.5 Urgent Data
  401.  
  402.    TCP requires the ability to send individual octets marked as "urgent"
  403.    data.  When an application requests this, it expects that the remote
  404.    end of the communications stream is notified as soon as possible that
  405.    urgent data are pending, and it expects that the remote end will be
  406.    able to mark this octet and deliver it either in-line or as out-of-
  407.    band data.  This feature is implemented over a Multiplexed Connection
  408.    using an URG_DATA message.  The format of the urgent data message is:
  409.  
  410.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  411.                      +-----------+-------------------+
  412.                      |    1      |    Length high    |
  413.                      +-----------+-------------------+
  414.                      |          Length low           |
  415.                      +-------------------------------+
  416.                      |      Dest ID (DID) high       |
  417.                      +-------------------------------+
  418.                      |      Dest ID (DID) low        |
  419.                      +-------------------------------+
  420.  
  421.    The DID is the identification for the subconnection.  The TYPE is 1.
  422.    The SIZE field indicates the number of bytes of urgent data being
  423.    sent.
  424.  
  425.    Some implementations may choose to expedite the transmission of data
  426.    preceding and including the urgent data message.
  427.  
  428. 3.6 Subconnection Flow Control
  429.  
  430.    CMP supports flow control on a subconnection basis to ensure that a
  431.    single subconnection can not tie up vast amounts of resources to the
  432.    detriment of the other subconnections.  Flow control in CMP is
  433.    accomplished by use of a credit/debit system.  Each endpoint knows
  434.    the maximum number of octets of data (contained in messages of type
  435.    DATA) that the other endpoint is able to receive, and may not send
  436.    more than this number, it can of course send less.  After sending a
  437.    DATA message, the endpoint should decrease its outstanding credit by
  438.    the number of octets just sent.  Once the other endpoint has
  439.    processed the data, it will send back CREDIT messages to tell the
  440.    sending endpoint how many more octets of data it can now receive.
  441.    Note, an endpoint can send CREDIT messages when it wishes to, there
  442.    are no constraints on the timing, and it may not grant back to the
  443.    other endpoint all the credit it initially had (or it may grant
  444.    more).  The format of the CREDIT message is:
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457. Cameron, Bates             Expires: 20 Oct 93                   [Page 7]
  458.  
  459.  
  460.  
  461.  
  462.  
  463. Internet Draft                    CMP                         April 1993
  464.  
  465.  
  466.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  467.                      +-----------+-------------------+
  468.                      |    6      | Extra credit high |
  469.                      +-----------+-------------------+
  470.                      |       Extra credit low        |
  471.                      +-------------------------------+
  472.                      |      Dest ID (DID) high       |
  473.                      +-------------------------------+
  474.                      |      Dest ID (DID) low        |
  475.                      +-------------------------------+
  476.  
  477.    The DID is the identification for the subconnection.  The TYPE is 6.
  478.  
  479.    The extra credit field is the number of octets of data space that
  480.    have become available at the endpoint sending the message.  This
  481.    value should be added to the credit value currently held.
  482.  
  483.    After an OPEN message, the credit available is given in the initial
  484.    credit field of the OPEN or OPEN_RPLY message.
  485.  
  486.    Only messages of type DATA are controlled by the credit/debit system,
  487.    all other messages (including URG_DATA) can be sent at any time.
  488.  
  489. 3.7 Closing a Subconnection
  490.  
  491.    When one side of the subconnection wishes to close, it sends a CLOSE
  492.    message. This indicates that there is no more data to be sent. After
  493.    sending this message an endpoint MUST NOT send any more data.  The
  494.    side which receives the Close Request continues to send data until
  495.    there is no more data to be sent, at which time it sends a CLOSE_RPLY
  496.    message.  A CLOSE message has the following format:
  497.  
  498.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  499.                      +-----------+-------------------+
  500.                      |    5      |         0         |
  501.                      +-----------+-------------------+
  502.                      |               1               |
  503.                      +-------------------------------+
  504.                      |      Dest ID (DID) high       |
  505.                      +-------------------------------+
  506.                      |      Dest ID (DID) low        |
  507.                      +-------------------------------+
  508.                      |         Close type            |
  509.                      +-------------------------------+
  510.  
  511.    The DID is the identification for the subconnection.  The TYPE is 5.
  512.  
  513.    The close type field contains the type of close to be done:
  514.  
  515.            0x00    Standard close
  516.            0x01    Reset.
  517.  
  518.  
  519.    A standard CLOSE will allow all data currently in transit to be sent,
  520.  
  521.  
  522.  
  523. Cameron, Bates             Expires: 20 Oct 93                   [Page 8]
  524.  
  525.  
  526.  
  527.  
  528.  
  529. Internet Draft                    CMP                         April 1993
  530.  
  531.  
  532.    but a reset CLOSE will cause this data to be flushed.
  533.  
  534.    The CLOSE_RPLY message has the following format:
  535.  
  536.                      | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
  537.                      +-----------+-------------------+
  538.                      |    6      |         0         |
  539.                      +-----------+-------------------+
  540.                      |               2               |
  541.                      +-------------------------------+
  542.                      |      Dest ID (DID) high       |
  543.                      +-------------------------------+
  544.                      |      Dest ID (DID) low        |
  545.                      +-------------------------------+
  546.                      |     Error code (ERR) high     |
  547.                      +-------------------------------+
  548.                      |     Error code (ERR) low      |
  549.                      +-------------------------------+
  550.  
  551.    The DID is the identification for the subconnection.  The TYPE is 6.
  552.    The ERR field is used to return an error code. A value of 0 is used
  553.    where the Close was successful, a non-zero value indicates an error.
  554.    See section 3.9 for a list of error codes.
  555.  
  556.    A subconnection is not closed until one endpoint issues a CLOSE
  557.    Request, and the other endpoint responds with a CLOSE_RPLY message.
  558.    Note, the subconnection is closed on receipt of the CLOSE_RPLY
  559.    message, regardless of the value of the ERR field.
  560.  
  561.    Where the close type is 'reset' the receiver should send the
  562.    CLOSE_RPLY message immediately, it should not wait for data to flush.
  563.  
  564.    If an endpoint sends a normal CLOSE message, and does not receive a
  565.    CLOSE_RPLY message it is permissible to send a second CLOSE message
  566.    with a 'close type' of 'reset'.  In this situation it must be
  567.    possible to cope with receiving either 1 or 2 CLOSE_RPLY messages.
  568.  
  569. 3.8 Closing a Multiplexed Connection
  570.  
  571.    When the last subconnection on a Multiplexed Connection has closed,
  572.    the Multiplexed Connection should also be closed, as any TCP
  573.    connection would be.
  574.  
  575. 3.9 Standard Error Codes
  576.  
  577.    The standard error codes to be used in the ERR field of the OPEN_RPLY
  578.    and CLOSE_RPLY messages are:
  579.  
  580.          ESUCCESS          0     Command completed successfully
  581.          ENXIO             5     No such device or address
  582.          ENOMEM            8     Not enough core
  583.          EACCES            9     Permission denied
  584.          EBUSY             10    Device busy
  585.          ENODEV            11    No such device
  586.  
  587.  
  588.  
  589. Cameron, Bates             Expires: 20 Oct 93                   [Page 9]
  590.  
  591.  
  592.  
  593.  
  594.  
  595. Internet Draft                    CMP                         April 1993
  596.  
  597.  
  598.          ESECURITY         54    Security fault
  599.          EMJOB             57    Job limit exceeded
  600.          ESECURITYERR      59    Security server is unreachable
  601.  
  602.    Any other non-zero values may also be used to signify an error
  603.    condition.
  604.  
  605.  
  606. 4. Multiplexed Messages
  607.  
  608.    A Multiplexed Message is the packet which is sent over the
  609.    Multiplexed Connection.  It is constructed from multiple data packets
  610.    and their associated CMP headers.
  611.  
  612. 4.1 Construction
  613.  
  614.    When an application to a subconnection sends a packet, the CMP
  615.    prepends that packet with a header to create a CMP message, then
  616.    appends the message to the Multiplexed Message under construction.
  617.  
  618.    When the first message to be transmitted is placed into the
  619.    Multiplexed Packet under construction, a timer is started.  When the
  620.    timer expires, all outstanding message are placed into the
  621.    Multiplexed Message and it is transmitted. This ensures that all
  622.    messages constructed before the timer expires are sent in a single
  623.    Multiplexed Message.  If during construction of the Multiplexed
  624.    Message the buffer holding the packet fills, the Multiplexed Message
  625.    is transmitted immediately.
  626.  
  627.    The delay time should be user configurable; a reasonable time is 20
  628.    to 30 milliseconds.  Additionally, configuration options may limit
  629.    the number of included data packets or the maximum size of the
  630.    Multiplexed Message before it is transmitted.
  631.  
  632.    If urgent data arrives for a subconnection, this is added to the
  633.    Multiplexed Message, which is transmitted immediately (see section
  634.    3.5).
  635.  
  636. 4.2 Disassembly
  637.  
  638.    When a Multiplexed Message is received, the CMP immediately accepts
  639.    it from TCP.  It is important that the TCP connection be kept drained
  640.    so that the window remains open.
  641.  
  642.    Each message in the Multiplexed Message (i.e. data message or control
  643.    message) is processed in turn.  The data contained in DATA and
  644.    URG_DATA messages is sent to the applications as though they were
  645.    directly interfaced to TCP.  All other message types are dealt with
  646.    by the CMP interface layer.
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655. Cameron, Bates             Expires: 20 Oct 93                  [Page 10]
  656.  
  657.  
  658.  
  659.  
  660.  
  661. Internet Draft                    CMP                         April 1993
  662.  
  663.  
  664. 5. Security Considerations
  665.  
  666.    If a site's security is instituted on an host-to-host basis, the CMP
  667.    does not introduce a security problem.  If security exists on a per
  668.    connection basis, the CMP would need to provide a mechanism for
  669.    allowing or disallowing certain users access to a multiplexed
  670.    connection.  Such a mechanism could be added, but is beyond the scope
  671.    of this document.
  672.  
  673.  
  674. 6. Authors' Addresses
  675.  
  676.    Peter Cameron and Julian Bates
  677.    Xylogics International Ltd.
  678.    Featherstone Road
  679.    Wolverton Mill
  680.    Milton Keynes
  681.    MK12 5RD
  682.    UK
  683.  
  684.    Phone: +44 908 222112
  685.    Fax:   +44 908 222115
  686.    Email: cmp-id@xylint.co.uk
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721. Cameron, Bates             Expires: 20 Oct 93                  [Page 11]
  722.  
  723.  
  724.